using Google.ProtocolBuffers;
using Google.ProtocolBuffers.Collections;
using micromsg.Proto;
using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Runtime.CompilerServices;
namespace micromsg
{
	[GeneratedCode("ProtoGen", "2.3.0.277"), DebuggerNonUserCode, CompilerGenerated]
	public sealed class ModContact : GeneratedMessageLite<ModContact, ModContact.Builder>
	{
		[GeneratedCode("ProtoGen", "2.3.0.277"), DebuggerNonUserCode, CompilerGenerated]
		public sealed class Builder : GeneratedBuilderLite<ModContact, ModContact.Builder>
		{
			private bool resultIsReadOnly;
			private ModContact result;
			protected override ModContact.Builder ThisBuilder
			{
				get
				{
					return this;
				}
			}
			public override bool IsInitialized
			{
				get
				{
					return this.result.IsInitialized;
				}
			}
			protected override ModContact MessageBeingBuilt
			{
				get
				{
					return this.PrepareBuilder();
				}
			}
			public override ModContact DefaultInstanceForType
			{
				get
				{
					return ModContact.DefaultInstance;
				}
			}
			public SKBuiltinString_t UserName
			{
				get
				{
					return this.result.UserName;
				}
				set
				{
					this.SetUserName(value);
				}
			}
			public SKBuiltinString_t NickName
			{
				get
				{
					return this.result.NickName;
				}
				set
				{
					this.SetNickName(value);
				}
			}
			public SKBuiltinString_t PYInitial
			{
				get
				{
					return this.result.PYInitial;
				}
				set
				{
					this.SetPYInitial(value);
				}
			}
			public SKBuiltinString_t QuanPin
			{
				get
				{
					return this.result.QuanPin;
				}
				set
				{
					this.SetQuanPin(value);
				}
			}
			public int Sex
			{
				get
				{
					return this.result.Sex;
				}
				set
				{
					this.SetSex(value);
				}
			}
			public SKBuiltinBuffer_t ImgBuf
			{
				get
				{
					return this.result.ImgBuf;
				}
				set
				{
					this.SetImgBuf(value);
				}
			}
			public uint BitMask
			{
				get
				{
					return this.result.BitMask;
				}
				set
				{
					this.SetBitMask(value);
				}
			}
			public uint BitVal
			{
				get
				{
					return this.result.BitVal;
				}
				set
				{
					this.SetBitVal(value);
				}
			}
			public uint ImgFlag
			{
				get
				{
					return this.result.ImgFlag;
				}
				set
				{
					this.SetImgFlag(value);
				}
			}
			public SKBuiltinString_t Remark
			{
				get
				{
					return this.result.Remark;
				}
				set
				{
					this.SetRemark(value);
				}
			}
			public SKBuiltinString_t RemarkPYInitial
			{
				get
				{
					return this.result.RemarkPYInitial;
				}
				set
				{
					this.SetRemarkPYInitial(value);
				}
			}
			public SKBuiltinString_t RemarkQuanPin
			{
				get
				{
					return this.result.RemarkQuanPin;
				}
				set
				{
					this.SetRemarkQuanPin(value);
				}
			}
			public uint ContactType
			{
				get
				{
					return this.result.ContactType;
				}
				set
				{
					this.SetContactType(value);
				}
			}
			public uint RoomInfoCount
			{
				get
				{
					return this.result.RoomInfoCount;
				}
				set
				{
					this.SetRoomInfoCount(value);
				}
			}
			public IPopsicleList<RoomInfo> RoomInfoListList
			{
				get
				{
					return this.PrepareBuilder().roomInfoList_;
				}
			}
			public int RoomInfoListCount
			{
				get
				{
					return this.result.RoomInfoListCount;
				}
			}
			public SKBuiltinString_t DomainList
			{
				get
				{
					return this.result.DomainList;
				}
				set
				{
					this.SetDomainList(value);
				}
			}
			public uint ChatRoomNotify
			{
				get
				{
					return this.result.ChatRoomNotify;
				}
				set
				{
					this.SetChatRoomNotify(value);
				}
			}
			public uint AddContactScene
			{
				get
				{
					return this.result.AddContactScene;
				}
				set
				{
					this.SetAddContactScene(value);
				}
			}
			public string Province
			{
				get
				{
					return this.result.Province;
				}
				set
				{
					this.SetProvince(value);
				}
			}
			public string City
			{
				get
				{
					return this.result.City;
				}
				set
				{
					this.SetCity(value);
				}
			}
			public string Signature
			{
				get
				{
					return this.result.Signature;
				}
				set
				{
					this.SetSignature(value);
				}
			}
			public uint PersonalCard
			{
				get
				{
					return this.result.PersonalCard;
				}
				set
				{
					this.SetPersonalCard(value);
				}
			}
			public uint HasWeiXinHdHeadImg
			{
				get
				{
					return this.result.HasWeiXinHdHeadImg;
				}
				set
				{
					this.SetHasWeiXinHdHeadImg(value);
				}
			}
			public uint VerifyFlag
			{
				get
				{
					return this.result.VerifyFlag;
				}
				set
				{
					this.SetVerifyFlag(value);
				}
			}
			public string VerifyInfo
			{
				get
				{
					return this.result.VerifyInfo;
				}
				set
				{
					this.SetVerifyInfo(value);
				}
			}
			public int Level
			{
				get
				{
					return this.result.Level;
				}
				set
				{
					this.SetLevel(value);
				}
			}
			public uint Source
			{
				get
				{
					return this.result.Source;
				}
				set
				{
					this.SetSource(value);
				}
			}
			public string Weibo
			{
				get
				{
					return this.result.Weibo;
				}
				set
				{
					this.SetWeibo(value);
				}
			}
			public string VerifyContent
			{
				get
				{
					return this.result.VerifyContent;
				}
				set
				{
					this.SetVerifyContent(value);
				}
			}
			public string Alias
			{
				get
				{
					return this.result.Alias;
				}
				set
				{
					this.SetAlias(value);
				}
			}
			public string ChatRoomOwner
			{
				get
				{
					return this.result.ChatRoomOwner;
				}
				set
				{
					this.SetChatRoomOwner(value);
				}
			}
			public string WeiboNickname
			{
				get
				{
					return this.result.WeiboNickname;
				}
				set
				{
					this.SetWeiboNickname(value);
				}
			}
			public uint WeiboFlag
			{
				get
				{
					return this.result.WeiboFlag;
				}
				set
				{
					this.SetWeiboFlag(value);
				}
			}
			public int AlbumStyle
			{
				get
				{
					return this.result.AlbumStyle;
				}
				set
				{
					this.SetAlbumStyle(value);
				}
			}
			public int AlbumFlag
			{
				get
				{
					return this.result.AlbumFlag;
				}
				set
				{
					this.SetAlbumFlag(value);
				}
			}
			public string AlbumBGImgID
			{
				get
				{
					return this.result.AlbumBGImgID;
				}
				set
				{
					this.SetAlbumBGImgID(value);
				}
			}
			public SnsUserInfo SnsUserInfo
			{
				get
				{
					return this.result.SnsUserInfo;
				}
				set
				{
					this.SetSnsUserInfo(value);
				}
			}
			public string Country
			{
				get
				{
					return this.result.Country;
				}
				set
				{
					this.SetCountry(value);
				}
			}
			public string BigHeadImgUrl
			{
				get
				{
					return this.result.BigHeadImgUrl;
				}
				set
				{
					this.SetBigHeadImgUrl(value);
				}
			}
			public string SmallHeadImgUrl
			{
				get
				{
					return this.result.SmallHeadImgUrl;
				}
				set
				{
					this.SetSmallHeadImgUrl(value);
				}
			}
			public string MyBrandList
			{
				get
				{
					return this.result.MyBrandList;
				}
				set
				{
					this.SetMyBrandList(value);
				}
			}
			public CustomizedInfo CustomizedInfo
			{
				get
				{
					return this.result.CustomizedInfo;
				}
				set
				{
					this.SetCustomizedInfo(value);
				}
			}
			public Builder()
			{
				this.result = ModContact.DefaultInstance;
				this.resultIsReadOnly = true;
			}
			internal Builder(ModContact cloneFrom)
			{
				this.result = cloneFrom;
				this.resultIsReadOnly = true;
			}
			private ModContact PrepareBuilder()
			{
				if (this.resultIsReadOnly)
				{
					ModContact other = this.result;
					this.result = new ModContact();
					this.resultIsReadOnly = false;
					this.MergeFrom(other);
				}
				return this.result;
			}
			public override ModContact.Builder Clear()
			{
				this.result = ModContact.DefaultInstance;
				this.resultIsReadOnly = true;
				return this;
			}
			public override ModContact.Builder Clone()
			{
				if (this.resultIsReadOnly)
				{
					return new ModContact.Builder(this.result);
				}
				return new ModContact.Builder().MergeFrom(this.result);
			}
			public override ModContact BuildPartial()
			{
				if (this.resultIsReadOnly)
				{
					return this.result;
				}
				this.resultIsReadOnly = true;
				return this.result.MakeReadOnly();
			}
			public override ModContact.Builder MergeFrom(IMessageLite other)
			{
				if (other is ModContact)
				{
					return this.MergeFrom((ModContact)other);
				}
				base.MergeFrom(other);
				return this;
			}
			public override ModContact.Builder MergeFrom(ModContact other)
			{
				return this;
			}
			public override ModContact.Builder MergeFrom(ICodedInputStream input)
			{
				return this.MergeFrom(input, ExtensionRegistry.Empty);
			}
			public override ModContact.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
			{
				this.PrepareBuilder();
				uint num;
				string text;
				while (input.ReadTag(out num, out text))
				{
					if (num == 0u && text != null)
					{
						int num2 = Array.BinarySearch<string>(ModContact._modContactFieldNames, text, StringComparer.get_Ordinal());
						if (num2 < 0)
						{
							this.ParseUnknownField(input, extensionRegistry, num, text);
							continue;
						}
						num = ModContact._modContactFieldTags[num2];
					}
					uint num3 = num;
					if (num3 <= 162u)
					{
						if (num3 <= 72u)
						{
							if (num3 <= 34u)
							{
								if (num3 <= 10u)
								{
									if (num3 == 0u)
									{
										throw InvalidProtocolBufferException.InvalidTag();
									}
									if (num3 == 10u)
									{
										SKBuiltinString_t.Builder builder = SKBuiltinString_t.CreateBuilder();
										if (this.result.hasUserName)
										{
											builder.MergeFrom(this.UserName);
										}
										input.ReadMessage(builder, extensionRegistry);
										this.UserName = builder.BuildPartial();
										continue;
									}
								}
								else
								{
									if (num3 == 18u)
									{
										SKBuiltinString_t.Builder builder2 = SKBuiltinString_t.CreateBuilder();
										if (this.result.hasNickName)
										{
											builder2.MergeFrom(this.NickName);
										}
										input.ReadMessage(builder2, extensionRegistry);
										this.NickName = builder2.BuildPartial();
										continue;
									}
									if (num3 == 26u)
									{
										SKBuiltinString_t.Builder builder3 = SKBuiltinString_t.CreateBuilder();
										if (this.result.hasPYInitial)
										{
											builder3.MergeFrom(this.PYInitial);
										}
										input.ReadMessage(builder3, extensionRegistry);
										this.PYInitial = builder3.BuildPartial();
										continue;
									}
									if (num3 == 34u)
									{
										SKBuiltinString_t.Builder builder4 = SKBuiltinString_t.CreateBuilder();
										if (this.result.hasQuanPin)
										{
											builder4.MergeFrom(this.QuanPin);
										}
										input.ReadMessage(builder4, extensionRegistry);
										this.QuanPin = builder4.BuildPartial();
										continue;
									}
								}
							}
							else
							{
								if (num3 <= 50u)
								{
									if (num3 == 40u)
									{
										this.result.hasSex = input.ReadInt32(ref this.result.sex_);
										continue;
									}
									if (num3 == 50u)
									{
										SKBuiltinBuffer_t.Builder builder5 = SKBuiltinBuffer_t.CreateBuilder();
										if (this.result.hasImgBuf)
										{
											builder5.MergeFrom(this.ImgBuf);
										}
										input.ReadMessage(builder5, extensionRegistry);
										this.ImgBuf = builder5.BuildPartial();
										continue;
									}
								}
								else
								{
									if (num3 == 56u)
									{
										this.result.hasBitMask = input.ReadUInt32(ref this.result.bitMask_);
										continue;
									}
									if (num3 == 64u)
									{
										this.result.hasBitVal = input.ReadUInt32(ref this.result.bitVal_);
										continue;
									}
									if (num3 == 72u)
									{
										this.result.hasImgFlag = input.ReadUInt32(ref this.result.imgFlag_);
										continue;
									}
								}
							}
						}
						else
						{
							if (num3 <= 112u)
							{
								if (num3 <= 90u)
								{
									if (num3 == 82u)
									{
										SKBuiltinString_t.Builder builder6 = SKBuiltinString_t.CreateBuilder();
										if (this.result.hasRemark)
										{
											builder6.MergeFrom(this.Remark);
										}
										input.ReadMessage(builder6, extensionRegistry);
										this.Remark = builder6.BuildPartial();
										continue;
									}
									if (num3 == 90u)
									{
										SKBuiltinString_t.Builder builder7 = SKBuiltinString_t.CreateBuilder();
										if (this.result.hasRemarkPYInitial)
										{
											builder7.MergeFrom(this.RemarkPYInitial);
										}
										input.ReadMessage(builder7, extensionRegistry);
										this.RemarkPYInitial = builder7.BuildPartial();
										continue;
									}
								}
								else
								{
									if (num3 == 98u)
									{
										SKBuiltinString_t.Builder builder8 = SKBuiltinString_t.CreateBuilder();
										if (this.result.hasRemarkQuanPin)
										{
											builder8.MergeFrom(this.RemarkQuanPin);
										}
										input.ReadMessage(builder8, extensionRegistry);
										this.RemarkQuanPin = builder8.BuildPartial();
										continue;
									}
									if (num3 == 104u)
									{
										this.result.hasContactType = input.ReadUInt32(ref this.result.contactType_);
										continue;
									}
									if (num3 == 112u)
									{
										this.result.hasRoomInfoCount = input.ReadUInt32(ref this.result.roomInfoCount_);
										continue;
									}
								}
							}
							else
							{
								if (num3 <= 136u)
								{
									if (num3 == 122u)
									{
										input.ReadMessageArray<RoomInfo>(num, text, this.result.roomInfoList_, RoomInfo.DefaultInstance, extensionRegistry);
										continue;
									}
									if (num3 == 130u)
									{
										SKBuiltinString_t.Builder builder9 = SKBuiltinString_t.CreateBuilder();
										if (this.result.hasDomainList)
										{
											builder9.MergeFrom(this.DomainList);
										}
										input.ReadMessage(builder9, extensionRegistry);
										this.DomainList = builder9.BuildPartial();
										continue;
									}
									if (num3 == 136u)
									{
										this.result.hasChatRoomNotify = input.ReadUInt32(ref this.result.chatRoomNotify_);
										continue;
									}
								}
								else
								{
									if (num3 == 144u)
									{
										this.result.hasAddContactScene = input.ReadUInt32(ref this.result.addContactScene_);
										continue;
									}
									if (num3 == 154u)
									{
										this.result.hasProvince = input.ReadString(ref this.result.province_);
										continue;
									}
									if (num3 == 162u)
									{
										this.result.hasCity = input.ReadString(ref this.result.city_);
										continue;
									}
								}
							}
						}
					}
					else
					{
						if (num3 <= 250u)
						{
							if (num3 <= 202u)
							{
								if (num3 <= 176u)
								{
									if (num3 == 170u)
									{
										this.result.hasSignature = input.ReadString(ref this.result.signature_);
										continue;
									}
									if (num3 == 176u)
									{
										this.result.hasPersonalCard = input.ReadUInt32(ref this.result.personalCard_);
										continue;
									}
								}
								else
								{
									if (num3 == 184u)
									{
										this.result.hasHasWeiXinHdHeadImg = input.ReadUInt32(ref this.result.hasWeiXinHdHeadImg_);
										continue;
									}
									if (num3 == 192u)
									{
										this.result.hasVerifyFlag = input.ReadUInt32(ref this.result.verifyFlag_);
										continue;
									}
									if (num3 == 202u)
									{
										this.result.hasVerifyInfo = input.ReadString(ref this.result.verifyInfo_);
										continue;
									}
								}
							}
							else
							{
								if (num3 <= 226u)
								{
									if (num3 == 208u)
									{
										this.result.hasLevel = input.ReadInt32(ref this.result.level_);
										continue;
									}
									if (num3 == 216u)
									{
										this.result.hasSource = input.ReadUInt32(ref this.result.source_);
										continue;
									}
									if (num3 == 226u)
									{
										this.result.hasWeibo = input.ReadString(ref this.result.weibo_);
										continue;
									}
								}
								else
								{
									if (num3 == 234u)
									{
										this.result.hasVerifyContent = input.ReadString(ref this.result.verifyContent_);
										continue;
									}
									if (num3 == 242u)
									{
										this.result.hasAlias = input.ReadString(ref this.result.alias_);
										continue;
									}
									if (num3 == 250u)
									{
										this.result.hasChatRoomOwner = input.ReadString(ref this.result.chatRoomOwner_);
										continue;
									}
								}
							}
						}
						else
						{
							if (num3 <= 290u)
							{
								if (num3 <= 264u)
								{
									if (num3 == 258u)
									{
										this.result.hasWeiboNickname = input.ReadString(ref this.result.weiboNickname_);
										continue;
									}
									if (num3 == 264u)
									{
										this.result.hasWeiboFlag = input.ReadUInt32(ref this.result.weiboFlag_);
										continue;
									}
								}
								else
								{
									if (num3 == 272u)
									{
										this.result.hasAlbumStyle = input.ReadInt32(ref this.result.albumStyle_);
										continue;
									}
									if (num3 == 280u)
									{
										this.result.hasAlbumFlag = input.ReadInt32(ref this.result.albumFlag_);
										continue;
									}
									if (num3 == 290u)
									{
										this.result.hasAlbumBGImgID = input.ReadString(ref this.result.albumBGImgID_);
										continue;
									}
								}
							}
							else
							{
								if (num3 <= 314u)
								{
									if (num3 == 298u)
									{
										SnsUserInfo.Builder builder10 = SnsUserInfo.CreateBuilder();
										if (this.result.hasSnsUserInfo)
										{
											builder10.MergeFrom(this.SnsUserInfo);
										}
										input.ReadMessage(builder10, extensionRegistry);
										this.SnsUserInfo = builder10.BuildPartial();
										continue;
									}
									if (num3 == 306u)
									{
										this.result.hasCountry = input.ReadString(ref this.result.country_);
										continue;
									}
									if (num3 == 314u)
									{
										this.result.hasBigHeadImgUrl = input.ReadString(ref this.result.bigHeadImgUrl_);
										continue;
									}
								}
								else
								{
									if (num3 == 322u)
									{
										this.result.hasSmallHeadImgUrl = input.ReadString(ref this.result.smallHeadImgUrl_);
										continue;
									}
									if (num3 == 330u)
									{
										this.result.hasMyBrandList = input.ReadString(ref this.result.myBrandList_);
										continue;
									}
									if (num3 == 338u)
									{
										CustomizedInfo.Builder builder11 = CustomizedInfo.CreateBuilder();
										if (this.result.hasCustomizedInfo)
										{
											builder11.MergeFrom(this.CustomizedInfo);
										}
										input.ReadMessage(builder11, extensionRegistry);
										this.CustomizedInfo = builder11.BuildPartial();
										continue;
									}
								}
							}
						}
					}
					if (WireFormat.IsEndGroupTag(num))
					{
						return this;
					}
					this.ParseUnknownField(input, extensionRegistry, num, text);
				}
				return this;
			}
			public ModContact.Builder SetUserName(SKBuiltinString_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasUserName = true;
				this.result.userName_ = value;
				return this;
			}
			public ModContact.Builder SetUserName(SKBuiltinString_t.Builder builderForValue)
			{
				ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
				this.PrepareBuilder();
				this.result.hasUserName = true;
				this.result.userName_ = builderForValue.Build();
				return this;
			}
			public ModContact.Builder MergeUserName(SKBuiltinString_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				if (this.result.hasUserName && this.result.userName_ != SKBuiltinString_t.DefaultInstance)
				{
					this.result.userName_ = SKBuiltinString_t.CreateBuilder(this.result.userName_).MergeFrom(value).BuildPartial();
				}
				else
				{
					this.result.userName_ = value;
				}
				this.result.hasUserName = true;
				return this;
			}
			public ModContact.Builder ClearUserName()
			{
				this.PrepareBuilder();
				this.result.hasUserName = false;
				this.result.userName_ = null;
				return this;
			}
			public ModContact.Builder SetNickName(SKBuiltinString_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasNickName = true;
				this.result.nickName_ = value;
				return this;
			}
			public ModContact.Builder SetNickName(SKBuiltinString_t.Builder builderForValue)
			{
				ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
				this.PrepareBuilder();
				this.result.hasNickName = true;
				this.result.nickName_ = builderForValue.Build();
				return this;
			}
			public ModContact.Builder MergeNickName(SKBuiltinString_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				if (this.result.hasNickName && this.result.nickName_ != SKBuiltinString_t.DefaultInstance)
				{
					this.result.nickName_ = SKBuiltinString_t.CreateBuilder(this.result.nickName_).MergeFrom(value).BuildPartial();
				}
				else
				{
					this.result.nickName_ = value;
				}
				this.result.hasNickName = true;
				return this;
			}
			public ModContact.Builder ClearNickName()
			{
				this.PrepareBuilder();
				this.result.hasNickName = false;
				this.result.nickName_ = null;
				return this;
			}
			public ModContact.Builder SetPYInitial(SKBuiltinString_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasPYInitial = true;
				this.result.pYInitial_ = value;
				return this;
			}
			public ModContact.Builder SetPYInitial(SKBuiltinString_t.Builder builderForValue)
			{
				ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
				this.PrepareBuilder();
				this.result.hasPYInitial = true;
				this.result.pYInitial_ = builderForValue.Build();
				return this;
			}
			public ModContact.Builder MergePYInitial(SKBuiltinString_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				if (this.result.hasPYInitial && this.result.pYInitial_ != SKBuiltinString_t.DefaultInstance)
				{
					this.result.pYInitial_ = SKBuiltinString_t.CreateBuilder(this.result.pYInitial_).MergeFrom(value).BuildPartial();
				}
				else
				{
					this.result.pYInitial_ = value;
				}
				this.result.hasPYInitial = true;
				return this;
			}
			public ModContact.Builder ClearPYInitial()
			{
				this.PrepareBuilder();
				this.result.hasPYInitial = false;
				this.result.pYInitial_ = null;
				return this;
			}
			public ModContact.Builder SetQuanPin(SKBuiltinString_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasQuanPin = true;
				this.result.quanPin_ = value;
				return this;
			}
			public ModContact.Builder SetQuanPin(SKBuiltinString_t.Builder builderForValue)
			{
				ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
				this.PrepareBuilder();
				this.result.hasQuanPin = true;
				this.result.quanPin_ = builderForValue.Build();
				return this;
			}
			public ModContact.Builder MergeQuanPin(SKBuiltinString_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				if (this.result.hasQuanPin && this.result.quanPin_ != SKBuiltinString_t.DefaultInstance)
				{
					this.result.quanPin_ = SKBuiltinString_t.CreateBuilder(this.result.quanPin_).MergeFrom(value).BuildPartial();
				}
				else
				{
					this.result.quanPin_ = value;
				}
				this.result.hasQuanPin = true;
				return this;
			}
			public ModContact.Builder ClearQuanPin()
			{
				this.PrepareBuilder();
				this.result.hasQuanPin = false;
				this.result.quanPin_ = null;
				return this;
			}
			public ModContact.Builder SetSex(int value)
			{
				this.PrepareBuilder();
				this.result.hasSex = true;
				this.result.sex_ = value;
				return this;
			}
			public ModContact.Builder ClearSex()
			{
				this.PrepareBuilder();
				this.result.hasSex = false;
				this.result.sex_ = 0;
				return this;
			}
			public ModContact.Builder SetImgBuf(SKBuiltinBuffer_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasImgBuf = true;
				this.result.imgBuf_ = value;
				return this;
			}
			public ModContact.Builder SetImgBuf(SKBuiltinBuffer_t.Builder builderForValue)
			{
				ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
				this.PrepareBuilder();
				this.result.hasImgBuf = true;
				this.result.imgBuf_ = builderForValue.Build();
				return this;
			}
			public ModContact.Builder MergeImgBuf(SKBuiltinBuffer_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				if (this.result.hasImgBuf && this.result.imgBuf_ != SKBuiltinBuffer_t.DefaultInstance)
				{
					this.result.imgBuf_ = SKBuiltinBuffer_t.CreateBuilder(this.result.imgBuf_).MergeFrom(value).BuildPartial();
				}
				else
				{
					this.result.imgBuf_ = value;
				}
				this.result.hasImgBuf = true;
				return this;
			}
			public ModContact.Builder ClearImgBuf()
			{
				this.PrepareBuilder();
				this.result.hasImgBuf = false;
				this.result.imgBuf_ = null;
				return this;
			}
			public ModContact.Builder SetBitMask(uint value)
			{
				this.PrepareBuilder();
				this.result.hasBitMask = true;
				this.result.bitMask_ = value;
				return this;
			}
			public ModContact.Builder ClearBitMask()
			{
				this.PrepareBuilder();
				this.result.hasBitMask = false;
				this.result.bitMask_ = 0u;
				return this;
			}
			public ModContact.Builder SetBitVal(uint value)
			{
				this.PrepareBuilder();
				this.result.hasBitVal = true;
				this.result.bitVal_ = value;
				return this;
			}
			public ModContact.Builder ClearBitVal()
			{
				this.PrepareBuilder();
				this.result.hasBitVal = false;
				this.result.bitVal_ = 0u;
				return this;
			}
			public ModContact.Builder SetImgFlag(uint value)
			{
				this.PrepareBuilder();
				this.result.hasImgFlag = true;
				this.result.imgFlag_ = value;
				return this;
			}
			public ModContact.Builder ClearImgFlag()
			{
				this.PrepareBuilder();
				this.result.hasImgFlag = false;
				this.result.imgFlag_ = 0u;
				return this;
			}
			public ModContact.Builder SetRemark(SKBuiltinString_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasRemark = true;
				this.result.remark_ = value;
				return this;
			}
			public ModContact.Builder SetRemark(SKBuiltinString_t.Builder builderForValue)
			{
				ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
				this.PrepareBuilder();
				this.result.hasRemark = true;
				this.result.remark_ = builderForValue.Build();
				return this;
			}
			public ModContact.Builder MergeRemark(SKBuiltinString_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				if (this.result.hasRemark && this.result.remark_ != SKBuiltinString_t.DefaultInstance)
				{
					this.result.remark_ = SKBuiltinString_t.CreateBuilder(this.result.remark_).MergeFrom(value).BuildPartial();
				}
				else
				{
					this.result.remark_ = value;
				}
				this.result.hasRemark = true;
				return this;
			}
			public ModContact.Builder ClearRemark()
			{
				this.PrepareBuilder();
				this.result.hasRemark = false;
				this.result.remark_ = null;
				return this;
			}
			public ModContact.Builder SetRemarkPYInitial(SKBuiltinString_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasRemarkPYInitial = true;
				this.result.remarkPYInitial_ = value;
				return this;
			}
			public ModContact.Builder SetRemarkPYInitial(SKBuiltinString_t.Builder builderForValue)
			{
				ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
				this.PrepareBuilder();
				this.result.hasRemarkPYInitial = true;
				this.result.remarkPYInitial_ = builderForValue.Build();
				return this;
			}
			public ModContact.Builder MergeRemarkPYInitial(SKBuiltinString_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				if (this.result.hasRemarkPYInitial && this.result.remarkPYInitial_ != SKBuiltinString_t.DefaultInstance)
				{
					this.result.remarkPYInitial_ = SKBuiltinString_t.CreateBuilder(this.result.remarkPYInitial_).MergeFrom(value).BuildPartial();
				}
				else
				{
					this.result.remarkPYInitial_ = value;
				}
				this.result.hasRemarkPYInitial = true;
				return this;
			}
			public ModContact.Builder ClearRemarkPYInitial()
			{
				this.PrepareBuilder();
				this.result.hasRemarkPYInitial = false;
				this.result.remarkPYInitial_ = null;
				return this;
			}
			public ModContact.Builder SetRemarkQuanPin(SKBuiltinString_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasRemarkQuanPin = true;
				this.result.remarkQuanPin_ = value;
				return this;
			}
			public ModContact.Builder SetRemarkQuanPin(SKBuiltinString_t.Builder builderForValue)
			{
				ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
				this.PrepareBuilder();
				this.result.hasRemarkQuanPin = true;
				this.result.remarkQuanPin_ = builderForValue.Build();
				return this;
			}
			public ModContact.Builder MergeRemarkQuanPin(SKBuiltinString_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				if (this.result.hasRemarkQuanPin && this.result.remarkQuanPin_ != SKBuiltinString_t.DefaultInstance)
				{
					this.result.remarkQuanPin_ = SKBuiltinString_t.CreateBuilder(this.result.remarkQuanPin_).MergeFrom(value).BuildPartial();
				}
				else
				{
					this.result.remarkQuanPin_ = value;
				}
				this.result.hasRemarkQuanPin = true;
				return this;
			}
			public ModContact.Builder ClearRemarkQuanPin()
			{
				this.PrepareBuilder();
				this.result.hasRemarkQuanPin = false;
				this.result.remarkQuanPin_ = null;
				return this;
			}
			public ModContact.Builder SetContactType(uint value)
			{
				this.PrepareBuilder();
				this.result.hasContactType = true;
				this.result.contactType_ = value;
				return this;
			}
			public ModContact.Builder ClearContactType()
			{
				this.PrepareBuilder();
				this.result.hasContactType = false;
				this.result.contactType_ = 0u;
				return this;
			}
			public ModContact.Builder SetRoomInfoCount(uint value)
			{
				this.PrepareBuilder();
				this.result.hasRoomInfoCount = true;
				this.result.roomInfoCount_ = value;
				return this;
			}
			public ModContact.Builder ClearRoomInfoCount()
			{
				this.PrepareBuilder();
				this.result.hasRoomInfoCount = false;
				this.result.roomInfoCount_ = 0u;
				return this;
			}
			public RoomInfo GetRoomInfoList(int index)
			{
				return this.result.GetRoomInfoList(index);
			}
			public ModContact.Builder SetRoomInfoList(int index, RoomInfo value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.roomInfoList_[index] = value;
				return this;
			}
			public ModContact.Builder SetRoomInfoList(int index, RoomInfo.Builder builderForValue)
			{
				ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
				this.PrepareBuilder();
				this.result.roomInfoList_[index] = builderForValue.Build();
				return this;
			}
			public ModContact.Builder AddRoomInfoList(RoomInfo value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.roomInfoList_.Add(value);
				return this;
			}
			public ModContact.Builder AddRoomInfoList(RoomInfo.Builder builderForValue)
			{
				ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
				this.PrepareBuilder();
				this.result.roomInfoList_.Add(builderForValue.Build());
				return this;
			}
			public ModContact.Builder AddRangeRoomInfoList(IEnumerable<RoomInfo> values)
			{
				this.PrepareBuilder();
				this.result.roomInfoList_.Add(values);
				return this;
			}
			public ModContact.Builder ClearRoomInfoList()
			{
				this.PrepareBuilder();
				this.result.roomInfoList_.Clear();
				return this;
			}
			public ModContact.Builder SetDomainList(SKBuiltinString_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasDomainList = true;
				this.result.domainList_ = value;
				return this;
			}
			public ModContact.Builder SetDomainList(SKBuiltinString_t.Builder builderForValue)
			{
				ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
				this.PrepareBuilder();
				this.result.hasDomainList = true;
				this.result.domainList_ = builderForValue.Build();
				return this;
			}
			public ModContact.Builder MergeDomainList(SKBuiltinString_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				if (this.result.hasDomainList && this.result.domainList_ != SKBuiltinString_t.DefaultInstance)
				{
					this.result.domainList_ = SKBuiltinString_t.CreateBuilder(this.result.domainList_).MergeFrom(value).BuildPartial();
				}
				else
				{
					this.result.domainList_ = value;
				}
				this.result.hasDomainList = true;
				return this;
			}
			public ModContact.Builder ClearDomainList()
			{
				this.PrepareBuilder();
				this.result.hasDomainList = false;
				this.result.domainList_ = null;
				return this;
			}
			public ModContact.Builder SetChatRoomNotify(uint value)
			{
				this.PrepareBuilder();
				this.result.hasChatRoomNotify = true;
				this.result.chatRoomNotify_ = value;
				return this;
			}
			public ModContact.Builder ClearChatRoomNotify()
			{
				this.PrepareBuilder();
				this.result.hasChatRoomNotify = false;
				this.result.chatRoomNotify_ = 0u;
				return this;
			}
			public ModContact.Builder SetAddContactScene(uint value)
			{
				this.PrepareBuilder();
				this.result.hasAddContactScene = true;
				this.result.addContactScene_ = value;
				return this;
			}
			public ModContact.Builder ClearAddContactScene()
			{
				this.PrepareBuilder();
				this.result.hasAddContactScene = false;
				this.result.addContactScene_ = 0u;
				return this;
			}
			public ModContact.Builder SetProvince(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasProvince = true;
				this.result.province_ = value;
				return this;
			}
			public ModContact.Builder ClearProvince()
			{
				this.PrepareBuilder();
				this.result.hasProvince = false;
				this.result.province_ = "";
				return this;
			}
			public ModContact.Builder SetCity(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasCity = true;
				this.result.city_ = value;
				return this;
			}
			public ModContact.Builder ClearCity()
			{
				this.PrepareBuilder();
				this.result.hasCity = false;
				this.result.city_ = "";
				return this;
			}
			public ModContact.Builder SetSignature(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasSignature = true;
				this.result.signature_ = value;
				return this;
			}
			public ModContact.Builder ClearSignature()
			{
				this.PrepareBuilder();
				this.result.hasSignature = false;
				this.result.signature_ = "";
				return this;
			}
			public ModContact.Builder SetPersonalCard(uint value)
			{
				this.PrepareBuilder();
				this.result.hasPersonalCard = true;
				this.result.personalCard_ = value;
				return this;
			}
			public ModContact.Builder ClearPersonalCard()
			{
				this.PrepareBuilder();
				this.result.hasPersonalCard = false;
				this.result.personalCard_ = 0u;
				return this;
			}
			public ModContact.Builder SetHasWeiXinHdHeadImg(uint value)
			{
				this.PrepareBuilder();
				this.result.hasHasWeiXinHdHeadImg = true;
				this.result.hasWeiXinHdHeadImg_ = value;
				return this;
			}
			public ModContact.Builder ClearHasWeiXinHdHeadImg()
			{
				this.PrepareBuilder();
				this.result.hasHasWeiXinHdHeadImg = false;
				this.result.hasWeiXinHdHeadImg_ = 0u;
				return this;
			}
			public ModContact.Builder SetVerifyFlag(uint value)
			{
				this.PrepareBuilder();
				this.result.hasVerifyFlag = true;
				this.result.verifyFlag_ = value;
				return this;
			}
			public ModContact.Builder ClearVerifyFlag()
			{
				this.PrepareBuilder();
				this.result.hasVerifyFlag = false;
				this.result.verifyFlag_ = 0u;
				return this;
			}
			public ModContact.Builder SetVerifyInfo(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasVerifyInfo = true;
				this.result.verifyInfo_ = value;
				return this;
			}
			public ModContact.Builder ClearVerifyInfo()
			{
				this.PrepareBuilder();
				this.result.hasVerifyInfo = false;
				this.result.verifyInfo_ = "";
				return this;
			}
			public ModContact.Builder SetLevel(int value)
			{
				this.PrepareBuilder();
				this.result.hasLevel = true;
				this.result.level_ = value;
				return this;
			}
			public ModContact.Builder ClearLevel()
			{
				this.PrepareBuilder();
				this.result.hasLevel = false;
				this.result.level_ = 0;
				return this;
			}
			public ModContact.Builder SetSource(uint value)
			{
				this.PrepareBuilder();
				this.result.hasSource = true;
				this.result.source_ = value;
				return this;
			}
			public ModContact.Builder ClearSource()
			{
				this.PrepareBuilder();
				this.result.hasSource = false;
				this.result.source_ = 0u;
				return this;
			}
			public ModContact.Builder SetWeibo(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasWeibo = true;
				this.result.weibo_ = value;
				return this;
			}
			public ModContact.Builder ClearWeibo()
			{
				this.PrepareBuilder();
				this.result.hasWeibo = false;
				this.result.weibo_ = "";
				return this;
			}
			public ModContact.Builder SetVerifyContent(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasVerifyContent = true;
				this.result.verifyContent_ = value;
				return this;
			}
			public ModContact.Builder ClearVerifyContent()
			{
				this.PrepareBuilder();
				this.result.hasVerifyContent = false;
				this.result.verifyContent_ = "";
				return this;
			}
			public ModContact.Builder SetAlias(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasAlias = true;
				this.result.alias_ = value;
				return this;
			}
			public ModContact.Builder ClearAlias()
			{
				this.PrepareBuilder();
				this.result.hasAlias = false;
				this.result.alias_ = "";
				return this;
			}
			public ModContact.Builder SetChatRoomOwner(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasChatRoomOwner = true;
				this.result.chatRoomOwner_ = value;
				return this;
			}
			public ModContact.Builder ClearChatRoomOwner()
			{
				this.PrepareBuilder();
				this.result.hasChatRoomOwner = false;
				this.result.chatRoomOwner_ = "";
				return this;
			}
			public ModContact.Builder SetWeiboNickname(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasWeiboNickname = true;
				this.result.weiboNickname_ = value;
				return this;
			}
			public ModContact.Builder ClearWeiboNickname()
			{
				this.PrepareBuilder();
				this.result.hasWeiboNickname = false;
				this.result.weiboNickname_ = "";
				return this;
			}
			public ModContact.Builder SetWeiboFlag(uint value)
			{
				this.PrepareBuilder();
				this.result.hasWeiboFlag = true;
				this.result.weiboFlag_ = value;
				return this;
			}
			public ModContact.Builder ClearWeiboFlag()
			{
				this.PrepareBuilder();
				this.result.hasWeiboFlag = false;
				this.result.weiboFlag_ = 0u;
				return this;
			}
			public ModContact.Builder SetAlbumStyle(int value)
			{
				this.PrepareBuilder();
				this.result.hasAlbumStyle = true;
				this.result.albumStyle_ = value;
				return this;
			}
			public ModContact.Builder ClearAlbumStyle()
			{
				this.PrepareBuilder();
				this.result.hasAlbumStyle = false;
				this.result.albumStyle_ = 0;
				return this;
			}
			public ModContact.Builder SetAlbumFlag(int value)
			{
				this.PrepareBuilder();
				this.result.hasAlbumFlag = true;
				this.result.albumFlag_ = value;
				return this;
			}
			public ModContact.Builder ClearAlbumFlag()
			{
				this.PrepareBuilder();
				this.result.hasAlbumFlag = false;
				this.result.albumFlag_ = 0;
				return this;
			}
			public ModContact.Builder SetAlbumBGImgID(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasAlbumBGImgID = true;
				this.result.albumBGImgID_ = value;
				return this;
			}
			public ModContact.Builder ClearAlbumBGImgID()
			{
				this.PrepareBuilder();
				this.result.hasAlbumBGImgID = false;
				this.result.albumBGImgID_ = "";
				return this;
			}
			public ModContact.Builder SetSnsUserInfo(SnsUserInfo value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasSnsUserInfo = true;
				this.result.snsUserInfo_ = value;
				return this;
			}
			public ModContact.Builder SetSnsUserInfo(SnsUserInfo.Builder builderForValue)
			{
				ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
				this.PrepareBuilder();
				this.result.hasSnsUserInfo = true;
				this.result.snsUserInfo_ = builderForValue.Build();
				return this;
			}
			public ModContact.Builder MergeSnsUserInfo(SnsUserInfo value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				if (this.result.hasSnsUserInfo && this.result.snsUserInfo_ != SnsUserInfo.DefaultInstance)
				{
					this.result.snsUserInfo_ = SnsUserInfo.CreateBuilder(this.result.snsUserInfo_).MergeFrom(value).BuildPartial();
				}
				else
				{
					this.result.snsUserInfo_ = value;
				}
				this.result.hasSnsUserInfo = true;
				return this;
			}
			public ModContact.Builder ClearSnsUserInfo()
			{
				this.PrepareBuilder();
				this.result.hasSnsUserInfo = false;
				this.result.snsUserInfo_ = null;
				return this;
			}
			public ModContact.Builder SetCountry(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasCountry = true;
				this.result.country_ = value;
				return this;
			}
			public ModContact.Builder ClearCountry()
			{
				this.PrepareBuilder();
				this.result.hasCountry = false;
				this.result.country_ = "";
				return this;
			}
			public ModContact.Builder SetBigHeadImgUrl(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasBigHeadImgUrl = true;
				this.result.bigHeadImgUrl_ = value;
				return this;
			}
			public ModContact.Builder ClearBigHeadImgUrl()
			{
				this.PrepareBuilder();
				this.result.hasBigHeadImgUrl = false;
				this.result.bigHeadImgUrl_ = "";
				return this;
			}
			public ModContact.Builder SetSmallHeadImgUrl(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasSmallHeadImgUrl = true;
				this.result.smallHeadImgUrl_ = value;
				return this;
			}
			public ModContact.Builder ClearSmallHeadImgUrl()
			{
				this.PrepareBuilder();
				this.result.hasSmallHeadImgUrl = false;
				this.result.smallHeadImgUrl_ = "";
				return this;
			}
			public ModContact.Builder SetMyBrandList(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasMyBrandList = true;
				this.result.myBrandList_ = value;
				return this;
			}
			public ModContact.Builder ClearMyBrandList()
			{
				this.PrepareBuilder();
				this.result.hasMyBrandList = false;
				this.result.myBrandList_ = "";
				return this;
			}
			public ModContact.Builder SetCustomizedInfo(CustomizedInfo value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasCustomizedInfo = true;
				this.result.customizedInfo_ = value;
				return this;
			}
			public ModContact.Builder SetCustomizedInfo(CustomizedInfo.Builder builderForValue)
			{
				ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
				this.PrepareBuilder();
				this.result.hasCustomizedInfo = true;
				this.result.customizedInfo_ = builderForValue.Build();
				return this;
			}
			public ModContact.Builder MergeCustomizedInfo(CustomizedInfo value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				if (this.result.hasCustomizedInfo && this.result.customizedInfo_ != CustomizedInfo.DefaultInstance)
				{
					this.result.customizedInfo_ = CustomizedInfo.CreateBuilder(this.result.customizedInfo_).MergeFrom(value).BuildPartial();
				}
				else
				{
					this.result.customizedInfo_ = value;
				}
				this.result.hasCustomizedInfo = true;
				return this;
			}
			public ModContact.Builder ClearCustomizedInfo()
			{
				this.PrepareBuilder();
				this.result.hasCustomizedInfo = false;
				this.result.customizedInfo_ = null;
				return this;
			}
		}
		public const int UserNameFieldNumber = 1;
		public const int NickNameFieldNumber = 2;
		public const int PYInitialFieldNumber = 3;
		public const int QuanPinFieldNumber = 4;
		public const int SexFieldNumber = 5;
		public const int ImgBufFieldNumber = 6;
		public const int BitMaskFieldNumber = 7;
		public const int BitValFieldNumber = 8;
		public const int ImgFlagFieldNumber = 9;
		public const int RemarkFieldNumber = 10;
		public const int RemarkPYInitialFieldNumber = 11;
		public const int RemarkQuanPinFieldNumber = 12;
		public const int ContactTypeFieldNumber = 13;
		public const int RoomInfoCountFieldNumber = 14;
		public const int RoomInfoListFieldNumber = 15;
		public const int DomainListFieldNumber = 16;
		public const int ChatRoomNotifyFieldNumber = 17;
		public const int AddContactSceneFieldNumber = 18;
		public const int ProvinceFieldNumber = 19;
		public const int CityFieldNumber = 20;
		public const int SignatureFieldNumber = 21;
		public const int PersonalCardFieldNumber = 22;
		public const int HasWeiXinHdHeadImgFieldNumber = 23;
		public const int VerifyFlagFieldNumber = 24;
		public const int VerifyInfoFieldNumber = 25;
		public const int LevelFieldNumber = 26;
		public const int SourceFieldNumber = 27;
		public const int WeiboFieldNumber = 28;
		public const int VerifyContentFieldNumber = 29;
		public const int AliasFieldNumber = 30;
		public const int ChatRoomOwnerFieldNumber = 31;
		public const int WeiboNicknameFieldNumber = 32;
		public const int WeiboFlagFieldNumber = 33;
		public const int AlbumStyleFieldNumber = 34;
		public const int AlbumFlagFieldNumber = 35;
		public const int AlbumBGImgIDFieldNumber = 36;
		public const int SnsUserInfoFieldNumber = 37;
		public const int CountryFieldNumber = 38;
		public const int BigHeadImgUrlFieldNumber = 39;
		public const int SmallHeadImgUrlFieldNumber = 40;
		public const int MyBrandListFieldNumber = 41;
		public const int CustomizedInfoFieldNumber = 42;
		private static readonly ModContact defaultInstance;
		private static readonly string[] _modContactFieldNames;
		private static readonly uint[] _modContactFieldTags;
		private bool hasUserName;
		private SKBuiltinString_t userName_;
		private bool hasNickName;
		private SKBuiltinString_t nickName_;
		private bool hasPYInitial;
		private SKBuiltinString_t pYInitial_;
		private bool hasQuanPin;
		private SKBuiltinString_t quanPin_;
		private bool hasSex;
		private int sex_;
		private bool hasImgBuf;
		private SKBuiltinBuffer_t imgBuf_;
		private bool hasBitMask;
		private uint bitMask_;
		private bool hasBitVal;
		private uint bitVal_;
		private bool hasImgFlag;
		private uint imgFlag_;
		private bool hasRemark;
		private SKBuiltinString_t remark_;
		private bool hasRemarkPYInitial;
		private SKBuiltinString_t remarkPYInitial_;
		private bool hasRemarkQuanPin;
		private SKBuiltinString_t remarkQuanPin_;
		private bool hasContactType;
		private uint contactType_;
		private bool hasRoomInfoCount;
		private uint roomInfoCount_;
		private PopsicleList<RoomInfo> roomInfoList_ = new PopsicleList<RoomInfo>();
		private bool hasDomainList;
		private SKBuiltinString_t domainList_;
		private bool hasChatRoomNotify;
		private uint chatRoomNotify_;
		private bool hasAddContactScene;
		private uint addContactScene_;
		private bool hasProvince;
		private string province_ = "";
		private bool hasCity;
		private string city_ = "";
		private bool hasSignature;
		private string signature_ = "";
		private bool hasPersonalCard;
		private uint personalCard_;
		private bool hasHasWeiXinHdHeadImg;
		private uint hasWeiXinHdHeadImg_;
		private bool hasVerifyFlag;
		private uint verifyFlag_;
		private bool hasVerifyInfo;
		private string verifyInfo_ = "";
		private bool hasLevel;
		private int level_;
		private bool hasSource;
		private uint source_;
		private bool hasWeibo;
		private string weibo_ = "";
		private bool hasVerifyContent;
		private string verifyContent_ = "";
		private bool hasAlias;
		private string alias_ = "";
		private bool hasChatRoomOwner;
		private string chatRoomOwner_ = "";
		private bool hasWeiboNickname;
		private string weiboNickname_ = "";
		private bool hasWeiboFlag;
		private uint weiboFlag_;
		private bool hasAlbumStyle;
		private int albumStyle_;
		private bool hasAlbumFlag;
		private int albumFlag_;
		private bool hasAlbumBGImgID;
		private string albumBGImgID_ = "";
		private bool hasSnsUserInfo;
		private SnsUserInfo snsUserInfo_;
		private bool hasCountry;
		private string country_ = "";
		private bool hasBigHeadImgUrl;
		private string bigHeadImgUrl_ = "";
		private bool hasSmallHeadImgUrl;
		private string smallHeadImgUrl_ = "";
		private bool hasMyBrandList;
		private string myBrandList_ = "";
		private bool hasCustomizedInfo;
		private CustomizedInfo customizedInfo_;
		private int memoizedSerializedSize = -1;
		public static ModContact DefaultInstance
		{
			get
			{
				return ModContact.defaultInstance;
			}
		}
		public override ModContact DefaultInstanceForType
		{
			get
			{
				return ModContact.DefaultInstance;
			}
		}
		protected override ModContact ThisMessage
		{
			get
			{
				return this;
			}
		}
		public SKBuiltinString_t UserName
		{
			get
			{
				return this.userName_ ?? SKBuiltinString_t.DefaultInstance;
			}
		}
		public SKBuiltinString_t NickName
		{
			get
			{
				return this.nickName_ ?? SKBuiltinString_t.DefaultInstance;
			}
		}
		public SKBuiltinString_t PYInitial
		{
			get
			{
				return this.pYInitial_ ?? SKBuiltinString_t.DefaultInstance;
			}
		}
		public SKBuiltinString_t QuanPin
		{
			get
			{
				return this.quanPin_ ?? SKBuiltinString_t.DefaultInstance;
			}
		}
		public int Sex
		{
			get
			{
				return this.sex_;
			}
		}
		public SKBuiltinBuffer_t ImgBuf
		{
			get
			{
				return this.imgBuf_ ?? SKBuiltinBuffer_t.DefaultInstance;
			}
		}
		public uint BitMask
		{
			get
			{
				return this.bitMask_;
			}
		}
		public uint BitVal
		{
			get
			{
				return this.bitVal_;
			}
		}
		public uint ImgFlag
		{
			get
			{
				return this.imgFlag_;
			}
		}
		public SKBuiltinString_t Remark
		{
			get
			{
				return this.remark_ ?? SKBuiltinString_t.DefaultInstance;
			}
		}
		public SKBuiltinString_t RemarkPYInitial
		{
			get
			{
				return this.remarkPYInitial_ ?? SKBuiltinString_t.DefaultInstance;
			}
		}
		public SKBuiltinString_t RemarkQuanPin
		{
			get
			{
				return this.remarkQuanPin_ ?? SKBuiltinString_t.DefaultInstance;
			}
		}
		public uint ContactType
		{
			get
			{
				return this.contactType_;
			}
		}
		public uint RoomInfoCount
		{
			get
			{
				return this.roomInfoCount_;
			}
		}
		public IList<RoomInfo> RoomInfoListList
		{
			get
			{
				return this.roomInfoList_;
			}
		}
		public int RoomInfoListCount
		{
			get
			{
				return this.roomInfoList_.Count;
			}
		}
		public SKBuiltinString_t DomainList
		{
			get
			{
				return this.domainList_ ?? SKBuiltinString_t.DefaultInstance;
			}
		}
		public uint ChatRoomNotify
		{
			get
			{
				return this.chatRoomNotify_;
			}
		}
		public uint AddContactScene
		{
			get
			{
				return this.addContactScene_;
			}
		}
		public string Province
		{
			get
			{
				return this.province_;
			}
		}
		public string City
		{
			get
			{
				return this.city_;
			}
		}
		public string Signature
		{
			get
			{
				return this.signature_;
			}
		}
		public uint PersonalCard
		{
			get
			{
				return this.personalCard_;
			}
		}
		public uint HasWeiXinHdHeadImg
		{
			get
			{
				return this.hasWeiXinHdHeadImg_;
			}
		}
		public uint VerifyFlag
		{
			get
			{
				return this.verifyFlag_;
			}
		}
		public string VerifyInfo
		{
			get
			{
				return this.verifyInfo_;
			}
		}
		public int Level
		{
			get
			{
				return this.level_;
			}
		}
		public uint Source
		{
			get
			{
				return this.source_;
			}
		}
		public string Weibo
		{
			get
			{
				return this.weibo_;
			}
		}
		public string VerifyContent
		{
			get
			{
				return this.verifyContent_;
			}
		}
		public string Alias
		{
			get
			{
				return this.alias_;
			}
		}
		public string ChatRoomOwner
		{
			get
			{
				return this.chatRoomOwner_;
			}
		}
		public string WeiboNickname
		{
			get
			{
				return this.weiboNickname_;
			}
		}
		public uint WeiboFlag
		{
			get
			{
				return this.weiboFlag_;
			}
		}
		public int AlbumStyle
		{
			get
			{
				return this.albumStyle_;
			}
		}
		public int AlbumFlag
		{
			get
			{
				return this.albumFlag_;
			}
		}
		public string AlbumBGImgID
		{
			get
			{
				return this.albumBGImgID_;
			}
		}
		public SnsUserInfo SnsUserInfo
		{
			get
			{
				return this.snsUserInfo_ ?? SnsUserInfo.DefaultInstance;
			}
		}
		public string Country
		{
			get
			{
				return this.country_;
			}
		}
		public string BigHeadImgUrl
		{
			get
			{
				return this.bigHeadImgUrl_;
			}
		}
		public string SmallHeadImgUrl
		{
			get
			{
				return this.smallHeadImgUrl_;
			}
		}
		public string MyBrandList
		{
			get
			{
				return this.myBrandList_;
			}
		}
		public CustomizedInfo CustomizedInfo
		{
			get
			{
				return this.customizedInfo_ ?? CustomizedInfo.DefaultInstance;
			}
		}
		public override bool IsInitialized
		{
			get
			{
				if (!this.hasUserName)
				{
					return false;
				}
				if (!this.hasNickName)
				{
					return false;
				}
				if (!this.hasPYInitial)
				{
					return false;
				}
				if (!this.hasQuanPin)
				{
					return false;
				}
				if (!this.hasSex)
				{
					return false;
				}
				if (!this.hasImgBuf)
				{
					return false;
				}
				if (!this.hasBitMask)
				{
					return false;
				}
				if (!this.hasBitVal)
				{
					return false;
				}
				if (!this.hasImgFlag)
				{
					return false;
				}
				if (!this.ImgBuf.IsInitialized)
				{
					return false;
				}
				bool result;
				using (IEnumerator<RoomInfo> enumerator = this.RoomInfoListList.GetEnumerator())
				{
					while (enumerator.MoveNext())
					{
						RoomInfo current = enumerator.get_Current();
						if (!current.IsInitialized)
						{
							result = false;
							return result;
						}
					}
					return true;
				}
				return result;
			}
		}
		public override int SerializedSize
		{
			get
			{
				int num = this.memoizedSerializedSize;
				if (num != -1)
				{
					return num;
				}
				num = 0;
				if (this.hasUserName)
				{
					num += CodedOutputStream.ComputeMessageSize(1, this.UserName);
				}
				if (this.hasNickName)
				{
					num += CodedOutputStream.ComputeMessageSize(2, this.NickName);
				}
				if (this.hasPYInitial)
				{
					num += CodedOutputStream.ComputeMessageSize(3, this.PYInitial);
				}
				if (this.hasQuanPin)
				{
					num += CodedOutputStream.ComputeMessageSize(4, this.QuanPin);
				}
				if (this.hasSex)
				{
					num += CodedOutputStream.ComputeInt32Size(5, this.Sex);
				}
				if (this.hasImgBuf)
				{
					num += CodedOutputStream.ComputeMessageSize(6, this.ImgBuf);
				}
				if (this.hasBitMask)
				{
					num += CodedOutputStream.ComputeUInt32Size(7, this.BitMask);
				}
				if (this.hasBitVal)
				{
					num += CodedOutputStream.ComputeUInt32Size(8, this.BitVal);
				}
				if (this.hasImgFlag)
				{
					num += CodedOutputStream.ComputeUInt32Size(9, this.ImgFlag);
				}
				if (this.hasRemark)
				{
					num += CodedOutputStream.ComputeMessageSize(10, this.Remark);
				}
				if (this.hasRemarkPYInitial)
				{
					num += CodedOutputStream.ComputeMessageSize(11, this.RemarkPYInitial);
				}
				if (this.hasRemarkQuanPin)
				{
					num += CodedOutputStream.ComputeMessageSize(12, this.RemarkQuanPin);
				}
				if (this.hasContactType)
				{
					num += CodedOutputStream.ComputeUInt32Size(13, this.ContactType);
				}
				if (this.hasRoomInfoCount)
				{
					num += CodedOutputStream.ComputeUInt32Size(14, this.RoomInfoCount);
				}
				using (IEnumerator<RoomInfo> enumerator = this.RoomInfoListList.GetEnumerator())
				{
					while (enumerator.MoveNext())
					{
						RoomInfo current = enumerator.get_Current();
						num += CodedOutputStream.ComputeMessageSize(15, current);
					}
				}
				if (this.hasDomainList)
				{
					num += CodedOutputStream.ComputeMessageSize(16, this.DomainList);
				}
				if (this.hasChatRoomNotify)
				{
					num += CodedOutputStream.ComputeUInt32Size(17, this.ChatRoomNotify);
				}
				if (this.hasAddContactScene)
				{
					num += CodedOutputStream.ComputeUInt32Size(18, this.AddContactScene);
				}
				if (this.hasProvince)
				{
					num += CodedOutputStream.ComputeStringSize(19, this.Province);
				}
				if (this.hasCity)
				{
					num += CodedOutputStream.ComputeStringSize(20, this.City);
				}
				if (this.hasSignature)
				{
					num += CodedOutputStream.ComputeStringSize(21, this.Signature);
				}
				if (this.hasPersonalCard)
				{
					num += CodedOutputStream.ComputeUInt32Size(22, this.PersonalCard);
				}
				if (this.hasHasWeiXinHdHeadImg)
				{
					num += CodedOutputStream.ComputeUInt32Size(23, this.HasWeiXinHdHeadImg);
				}
				if (this.hasVerifyFlag)
				{
					num += CodedOutputStream.ComputeUInt32Size(24, this.VerifyFlag);
				}
				if (this.hasVerifyInfo)
				{
					num += CodedOutputStream.ComputeStringSize(25, this.VerifyInfo);
				}
				if (this.hasLevel)
				{
					num += CodedOutputStream.ComputeInt32Size(26, this.Level);
				}
				if (this.hasSource)
				{
					num += CodedOutputStream.ComputeUInt32Size(27, this.Source);
				}
				if (this.hasWeibo)
				{
					num += CodedOutputStream.ComputeStringSize(28, this.Weibo);
				}
				if (this.hasVerifyContent)
				{
					num += CodedOutputStream.ComputeStringSize(29, this.VerifyContent);
				}
				if (this.hasAlias)
				{
					num += CodedOutputStream.ComputeStringSize(30, this.Alias);
				}
				if (this.hasChatRoomOwner)
				{
					num += CodedOutputStream.ComputeStringSize(31, this.ChatRoomOwner);
				}
				if (this.hasWeiboNickname)
				{
					num += CodedOutputStream.ComputeStringSize(32, this.WeiboNickname);
				}
				if (this.hasWeiboFlag)
				{
					num += CodedOutputStream.ComputeUInt32Size(33, this.WeiboFlag);
				}
				if (this.hasAlbumStyle)
				{
					num += CodedOutputStream.ComputeInt32Size(34, this.AlbumStyle);
				}
				if (this.hasAlbumFlag)
				{
					num += CodedOutputStream.ComputeInt32Size(35, this.AlbumFlag);
				}
				if (this.hasAlbumBGImgID)
				{
					num += CodedOutputStream.ComputeStringSize(36, this.AlbumBGImgID);
				}
				if (this.hasSnsUserInfo)
				{
					num += CodedOutputStream.ComputeMessageSize(37, this.SnsUserInfo);
				}
				if (this.hasCountry)
				{
					num += CodedOutputStream.ComputeStringSize(38, this.Country);
				}
				if (this.hasBigHeadImgUrl)
				{
					num += CodedOutputStream.ComputeStringSize(39, this.BigHeadImgUrl);
				}
				if (this.hasSmallHeadImgUrl)
				{
					num += CodedOutputStream.ComputeStringSize(40, this.SmallHeadImgUrl);
				}
				if (this.hasMyBrandList)
				{
					num += CodedOutputStream.ComputeStringSize(41, this.MyBrandList);
				}
				if (this.hasCustomizedInfo)
				{
					num += CodedOutputStream.ComputeMessageSize(42, this.CustomizedInfo);
				}
				this.memoizedSerializedSize = num;
				return num;
			}
		}
		private ModContact()
		{
		}
		public RoomInfo GetRoomInfoList(int index)
		{
			return this.roomInfoList_[index];
		}
		public override void WriteTo(ICodedOutputStream output)
		{
			int arg_06_0 = this.SerializedSize;
			string[] modContactFieldNames = ModContact._modContactFieldNames;
			if (this.hasUserName)
			{
				output.WriteMessage(1, modContactFieldNames[35], this.UserName);
			}
			if (this.hasNickName)
			{
				output.WriteMessage(2, modContactFieldNames[20], this.NickName);
			}
			if (this.hasPYInitial)
			{
				output.WriteMessage(3, modContactFieldNames[21], this.PYInitial);
			}
			if (this.hasQuanPin)
			{
				output.WriteMessage(4, modContactFieldNames[24], this.QuanPin);
			}
			if (this.hasSex)
			{
				output.WriteInt32(5, modContactFieldNames[30], this.Sex);
			}
			if (this.hasImgBuf)
			{
				output.WriteMessage(6, modContactFieldNames[16], this.ImgBuf);
			}
			if (this.hasBitMask)
			{
				output.WriteUInt32(7, modContactFieldNames[6], this.BitMask);
			}
			if (this.hasBitVal)
			{
				output.WriteUInt32(8, modContactFieldNames[7], this.BitVal);
			}
			if (this.hasImgFlag)
			{
				output.WriteUInt32(9, modContactFieldNames[17], this.ImgFlag);
			}
			if (this.hasRemark)
			{
				output.WriteMessage(10, modContactFieldNames[25], this.Remark);
			}
			if (this.hasRemarkPYInitial)
			{
				output.WriteMessage(11, modContactFieldNames[26], this.RemarkPYInitial);
			}
			if (this.hasRemarkQuanPin)
			{
				output.WriteMessage(12, modContactFieldNames[27], this.RemarkQuanPin);
			}
			if (this.hasContactType)
			{
				output.WriteUInt32(13, modContactFieldNames[11], this.ContactType);
			}
			if (this.hasRoomInfoCount)
			{
				output.WriteUInt32(14, modContactFieldNames[28], this.RoomInfoCount);
			}
			if (this.roomInfoList_.Count > 0)
			{
				output.WriteMessageArray<RoomInfo>(15, modContactFieldNames[29], this.roomInfoList_);
			}
			if (this.hasDomainList)
			{
				output.WriteMessage(16, modContactFieldNames[14], this.DomainList);
			}
			if (this.hasChatRoomNotify)
			{
				output.WriteUInt32(17, modContactFieldNames[8], this.ChatRoomNotify);
			}
			if (this.hasAddContactScene)
			{
				output.WriteUInt32(18, modContactFieldNames[0], this.AddContactScene);
			}
			if (this.hasProvince)
			{
				output.WriteString(19, modContactFieldNames[23], this.Province);
			}
			if (this.hasCity)
			{
				output.WriteString(20, modContactFieldNames[10], this.City);
			}
			if (this.hasSignature)
			{
				output.WriteString(21, modContactFieldNames[31], this.Signature);
			}
			if (this.hasPersonalCard)
			{
				output.WriteUInt32(22, modContactFieldNames[22], this.PersonalCard);
			}
			if (this.hasHasWeiXinHdHeadImg)
			{
				output.WriteUInt32(23, modContactFieldNames[15], this.HasWeiXinHdHeadImg);
			}
			if (this.hasVerifyFlag)
			{
				output.WriteUInt32(24, modContactFieldNames[37], this.VerifyFlag);
			}
			if (this.hasVerifyInfo)
			{
				output.WriteString(25, modContactFieldNames[38], this.VerifyInfo);
			}
			if (this.hasLevel)
			{
				output.WriteInt32(26, modContactFieldNames[18], this.Level);
			}
			if (this.hasSource)
			{
				output.WriteUInt32(27, modContactFieldNames[34], this.Source);
			}
			if (this.hasWeibo)
			{
				output.WriteString(28, modContactFieldNames[39], this.Weibo);
			}
			if (this.hasVerifyContent)
			{
				output.WriteString(29, modContactFieldNames[36], this.VerifyContent);
			}
			if (this.hasAlias)
			{
				output.WriteString(30, modContactFieldNames[4], this.Alias);
			}
			if (this.hasChatRoomOwner)
			{
				output.WriteString(31, modContactFieldNames[9], this.ChatRoomOwner);
			}
			if (this.hasWeiboNickname)
			{
				output.WriteString(32, modContactFieldNames[41], this.WeiboNickname);
			}
			if (this.hasWeiboFlag)
			{
				output.WriteUInt32(33, modContactFieldNames[40], this.WeiboFlag);
			}
			if (this.hasAlbumStyle)
			{
				output.WriteInt32(34, modContactFieldNames[3], this.AlbumStyle);
			}
			if (this.hasAlbumFlag)
			{
				output.WriteInt32(35, modContactFieldNames[2], this.AlbumFlag);
			}
			if (this.hasAlbumBGImgID)
			{
				output.WriteString(36, modContactFieldNames[1], this.AlbumBGImgID);
			}
			if (this.hasSnsUserInfo)
			{
				output.WriteMessage(37, modContactFieldNames[33], this.SnsUserInfo);
			}
			if (this.hasCountry)
			{
				output.WriteString(38, modContactFieldNames[12], this.Country);
			}
			if (this.hasBigHeadImgUrl)
			{
				output.WriteString(39, modContactFieldNames[5], this.BigHeadImgUrl);
			}
			if (this.hasSmallHeadImgUrl)
			{
				output.WriteString(40, modContactFieldNames[32], this.SmallHeadImgUrl);
			}
			if (this.hasMyBrandList)
			{
				output.WriteString(41, modContactFieldNames[19], this.MyBrandList);
			}
			if (this.hasCustomizedInfo)
			{
				output.WriteMessage(42, modContactFieldNames[13], this.CustomizedInfo);
			}
		}
		public override int GetHashCode()
		{
			int num = base.GetType().GetHashCode();
			if (this.hasUserName)
			{
				num ^= this.userName_.GetHashCode();
			}
			if (this.hasNickName)
			{
				num ^= this.nickName_.GetHashCode();
			}
			if (this.hasPYInitial)
			{
				num ^= this.pYInitial_.GetHashCode();
			}
			if (this.hasQuanPin)
			{
				num ^= this.quanPin_.GetHashCode();
			}
			if (this.hasSex)
			{
				num ^= this.sex_.GetHashCode();
			}
			if (this.hasImgBuf)
			{
				num ^= this.imgBuf_.GetHashCode();
			}
			if (this.hasBitMask)
			{
				num ^= this.bitMask_.GetHashCode();
			}
			if (this.hasBitVal)
			{
				num ^= this.bitVal_.GetHashCode();
			}
			if (this.hasImgFlag)
			{
				num ^= this.imgFlag_.GetHashCode();
			}
			if (this.hasRemark)
			{
				num ^= this.remark_.GetHashCode();
			}
			if (this.hasRemarkPYInitial)
			{
				num ^= this.remarkPYInitial_.GetHashCode();
			}
			if (this.hasRemarkQuanPin)
			{
				num ^= this.remarkQuanPin_.GetHashCode();
			}
			if (this.hasContactType)
			{
				num ^= this.contactType_.GetHashCode();
			}
			if (this.hasRoomInfoCount)
			{
				num ^= this.roomInfoCount_.GetHashCode();
			}
			using (IEnumerator<RoomInfo> enumerator = this.roomInfoList_.GetEnumerator())
			{
				while (enumerator.MoveNext())
				{
					RoomInfo current = enumerator.get_Current();
					num ^= current.GetHashCode();
				}
			}
			if (this.hasDomainList)
			{
				num ^= this.domainList_.GetHashCode();
			}
			if (this.hasChatRoomNotify)
			{
				num ^= this.chatRoomNotify_.GetHashCode();
			}
			if (this.hasAddContactScene)
			{
				num ^= this.addContactScene_.GetHashCode();
			}
			if (this.hasProvince)
			{
				num ^= this.province_.GetHashCode();
			}
			if (this.hasCity)
			{
				num ^= this.city_.GetHashCode();
			}
			if (this.hasSignature)
			{
				num ^= this.signature_.GetHashCode();
			}
			if (this.hasPersonalCard)
			{
				num ^= this.personalCard_.GetHashCode();
			}
			if (this.hasHasWeiXinHdHeadImg)
			{
				num ^= this.hasWeiXinHdHeadImg_.GetHashCode();
			}
			if (this.hasVerifyFlag)
			{
				num ^= this.verifyFlag_.GetHashCode();
			}
			if (this.hasVerifyInfo)
			{
				num ^= this.verifyInfo_.GetHashCode();
			}
			if (this.hasLevel)
			{
				num ^= this.level_.GetHashCode();
			}
			if (this.hasSource)
			{
				num ^= this.source_.GetHashCode();
			}
			if (this.hasWeibo)
			{
				num ^= this.weibo_.GetHashCode();
			}
			if (this.hasVerifyContent)
			{
				num ^= this.verifyContent_.GetHashCode();
			}
			if (this.hasAlias)
			{
				num ^= this.alias_.GetHashCode();
			}
			if (this.hasChatRoomOwner)
			{
				num ^= this.chatRoomOwner_.GetHashCode();
			}
			if (this.hasWeiboNickname)
			{
				num ^= this.weiboNickname_.GetHashCode();
			}
			if (this.hasWeiboFlag)
			{
				num ^= this.weiboFlag_.GetHashCode();
			}
			if (this.hasAlbumStyle)
			{
				num ^= this.albumStyle_.GetHashCode();
			}
			if (this.hasAlbumFlag)
			{
				num ^= this.albumFlag_.GetHashCode();
			}
			if (this.hasAlbumBGImgID)
			{
				num ^= this.albumBGImgID_.GetHashCode();
			}
			if (this.hasSnsUserInfo)
			{
				num ^= this.snsUserInfo_.GetHashCode();
			}
			if (this.hasCountry)
			{
				num ^= this.country_.GetHashCode();
			}
			if (this.hasBigHeadImgUrl)
			{
				num ^= this.bigHeadImgUrl_.GetHashCode();
			}
			if (this.hasSmallHeadImgUrl)
			{
				num ^= this.smallHeadImgUrl_.GetHashCode();
			}
			if (this.hasMyBrandList)
			{
				num ^= this.myBrandList_.GetHashCode();
			}
			if (this.hasCustomizedInfo)
			{
				num ^= this.customizedInfo_.GetHashCode();
			}
			return num;
		}
		public override bool Equals(object value)
		{
			ModContact modContact = value as ModContact;
			if (modContact == null)
			{
				return false;
			}
			if (this.hasUserName != modContact.hasUserName || (this.hasUserName && !this.userName_.Equals(modContact.userName_)))
			{
				return false;
			}
			if (this.hasNickName != modContact.hasNickName || (this.hasNickName && !this.nickName_.Equals(modContact.nickName_)))
			{
				return false;
			}
			if (this.hasPYInitial != modContact.hasPYInitial || (this.hasPYInitial && !this.pYInitial_.Equals(modContact.pYInitial_)))
			{
				return false;
			}
			if (this.hasQuanPin != modContact.hasQuanPin || (this.hasQuanPin && !this.quanPin_.Equals(modContact.quanPin_)))
			{
				return false;
			}
			if (this.hasSex != modContact.hasSex || (this.hasSex && !this.sex_.Equals(modContact.sex_)))
			{
				return false;
			}
			if (this.hasImgBuf != modContact.hasImgBuf || (this.hasImgBuf && !this.imgBuf_.Equals(modContact.imgBuf_)))
			{
				return false;
			}
			if (this.hasBitMask != modContact.hasBitMask || (this.hasBitMask && !this.bitMask_.Equals(modContact.bitMask_)))
			{
				return false;
			}
			if (this.hasBitVal != modContact.hasBitVal || (this.hasBitVal && !this.bitVal_.Equals(modContact.bitVal_)))
			{
				return false;
			}
			if (this.hasImgFlag != modContact.hasImgFlag || (this.hasImgFlag && !this.imgFlag_.Equals(modContact.imgFlag_)))
			{
				return false;
			}
			if (this.hasRemark != modContact.hasRemark || (this.hasRemark && !this.remark_.Equals(modContact.remark_)))
			{
				return false;
			}
			if (this.hasRemarkPYInitial != modContact.hasRemarkPYInitial || (this.hasRemarkPYInitial && !this.remarkPYInitial_.Equals(modContact.remarkPYInitial_)))
			{
				return false;
			}
			if (this.hasRemarkQuanPin != modContact.hasRemarkQuanPin || (this.hasRemarkQuanPin && !this.remarkQuanPin_.Equals(modContact.remarkQuanPin_)))
			{
				return false;
			}
			if (this.hasContactType != modContact.hasContactType || (this.hasContactType && !this.contactType_.Equals(modContact.contactType_)))
			{
				return false;
			}
			if (this.hasRoomInfoCount != modContact.hasRoomInfoCount || (this.hasRoomInfoCount && !this.roomInfoCount_.Equals(modContact.roomInfoCount_)))
			{
				return false;
			}
			if (this.roomInfoList_.Count != modContact.roomInfoList_.Count)
			{
				return false;
			}
			for (int i = 0; i < this.roomInfoList_.Count; i++)
			{
				if (!this.roomInfoList_[i].Equals(modContact.roomInfoList_[i]))
				{
					return false;
				}
			}
			return this.hasDomainList == modContact.hasDomainList && (!this.hasDomainList || this.domainList_.Equals(modContact.domainList_)) && (this.hasChatRoomNotify == modContact.hasChatRoomNotify && (!this.hasChatRoomNotify || this.chatRoomNotify_.Equals(modContact.chatRoomNotify_))) && (this.hasAddContactScene == modContact.hasAddContactScene && (!this.hasAddContactScene || this.addContactScene_.Equals(modContact.addContactScene_))) && (this.hasProvince == modContact.hasProvince && (!this.hasProvince || this.province_.Equals(modContact.province_))) && (this.hasCity == modContact.hasCity && (!this.hasCity || this.city_.Equals(modContact.city_))) && (this.hasSignature == modContact.hasSignature && (!this.hasSignature || this.signature_.Equals(modContact.signature_))) && (this.hasPersonalCard == modContact.hasPersonalCard && (!this.hasPersonalCard || this.personalCard_.Equals(modContact.personalCard_))) && (this.hasHasWeiXinHdHeadImg == modContact.hasHasWeiXinHdHeadImg && (!this.hasHasWeiXinHdHeadImg || this.hasWeiXinHdHeadImg_.Equals(modContact.hasWeiXinHdHeadImg_))) && (this.hasVerifyFlag == modContact.hasVerifyFlag && (!this.hasVerifyFlag || this.verifyFlag_.Equals(modContact.verifyFlag_))) && (this.hasVerifyInfo == modContact.hasVerifyInfo && (!this.hasVerifyInfo || this.verifyInfo_.Equals(modContact.verifyInfo_))) && (this.hasLevel == modContact.hasLevel && (!this.hasLevel || this.level_.Equals(modContact.level_))) && (this.hasSource == modContact.hasSource && (!this.hasSource || this.source_.Equals(modContact.source_))) && (this.hasWeibo == modContact.hasWeibo && (!this.hasWeibo || this.weibo_.Equals(modContact.weibo_))) && (this.hasVerifyContent == modContact.hasVerifyContent && (!this.hasVerifyContent || this.verifyContent_.Equals(modContact.verifyContent_))) && (this.hasAlias == modContact.hasAlias && (!this.hasAlias || this.alias_.Equals(modContact.alias_))) && (this.hasChatRoomOwner == modContact.hasChatRoomOwner && (!this.hasChatRoomOwner || this.chatRoomOwner_.Equals(modContact.chatRoomOwner_))) && (this.hasWeiboNickname == modContact.hasWeiboNickname && (!this.hasWeiboNickname || this.weiboNickname_.Equals(modContact.weiboNickname_))) && (this.hasWeiboFlag == modContact.hasWeiboFlag && (!this.hasWeiboFlag || this.weiboFlag_.Equals(modContact.weiboFlag_))) && (this.hasAlbumStyle == modContact.hasAlbumStyle && (!this.hasAlbumStyle || this.albumStyle_.Equals(modContact.albumStyle_))) && (this.hasAlbumFlag == modContact.hasAlbumFlag && (!this.hasAlbumFlag || this.albumFlag_.Equals(modContact.albumFlag_))) && (this.hasAlbumBGImgID == modContact.hasAlbumBGImgID && (!this.hasAlbumBGImgID || this.albumBGImgID_.Equals(modContact.albumBGImgID_))) && (this.hasSnsUserInfo == modContact.hasSnsUserInfo && (!this.hasSnsUserInfo || this.snsUserInfo_.Equals(modContact.snsUserInfo_))) && (this.hasCountry == modContact.hasCountry && (!this.hasCountry || this.country_.Equals(modContact.country_))) && (this.hasBigHeadImgUrl == modContact.hasBigHeadImgUrl && (!this.hasBigHeadImgUrl || this.bigHeadImgUrl_.Equals(modContact.bigHeadImgUrl_))) && (this.hasSmallHeadImgUrl == modContact.hasSmallHeadImgUrl && (!this.hasSmallHeadImgUrl || this.smallHeadImgUrl_.Equals(modContact.smallHeadImgUrl_))) && (this.hasMyBrandList == modContact.hasMyBrandList && (!this.hasMyBrandList || this.myBrandList_.Equals(modContact.myBrandList_))) && (this.hasCustomizedInfo == modContact.hasCustomizedInfo && (!this.hasCustomizedInfo || this.customizedInfo_.Equals(modContact.customizedInfo_)));
		}
		public override void PrintTo(TextWriter writer)
		{
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("UserName", this.hasUserName, this.userName_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("NickName", this.hasNickName, this.nickName_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("PYInitial", this.hasPYInitial, this.pYInitial_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("QuanPin", this.hasQuanPin, this.quanPin_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("Sex", this.hasSex, this.sex_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("ImgBuf", this.hasImgBuf, this.imgBuf_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("BitMask", this.hasBitMask, this.bitMask_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("BitVal", this.hasBitVal, this.bitVal_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("ImgFlag", this.hasImgFlag, this.imgFlag_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("Remark", this.hasRemark, this.remark_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("RemarkPYInitial", this.hasRemarkPYInitial, this.remarkPYInitial_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("RemarkQuanPin", this.hasRemarkQuanPin, this.remarkQuanPin_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("ContactType", this.hasContactType, this.contactType_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("RoomInfoCount", this.hasRoomInfoCount, this.roomInfoCount_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField<RoomInfo>("RoomInfoList", this.roomInfoList_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("DomainList", this.hasDomainList, this.domainList_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("ChatRoomNotify", this.hasChatRoomNotify, this.chatRoomNotify_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("AddContactScene", this.hasAddContactScene, this.addContactScene_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("Province", this.hasProvince, this.province_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("City", this.hasCity, this.city_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("Signature", this.hasSignature, this.signature_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("PersonalCard", this.hasPersonalCard, this.personalCard_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("HasWeiXinHdHeadImg", this.hasHasWeiXinHdHeadImg, this.hasWeiXinHdHeadImg_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("VerifyFlag", this.hasVerifyFlag, this.verifyFlag_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("VerifyInfo", this.hasVerifyInfo, this.verifyInfo_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("Level", this.hasLevel, this.level_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("Source", this.hasSource, this.source_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("Weibo", this.hasWeibo, this.weibo_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("VerifyContent", this.hasVerifyContent, this.verifyContent_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("Alias", this.hasAlias, this.alias_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("ChatRoomOwner", this.hasChatRoomOwner, this.chatRoomOwner_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("WeiboNickname", this.hasWeiboNickname, this.weiboNickname_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("WeiboFlag", this.hasWeiboFlag, this.weiboFlag_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("AlbumStyle", this.hasAlbumStyle, this.albumStyle_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("AlbumFlag", this.hasAlbumFlag, this.albumFlag_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("AlbumBGImgID", this.hasAlbumBGImgID, this.albumBGImgID_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("SnsUserInfo", this.hasSnsUserInfo, this.snsUserInfo_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("Country", this.hasCountry, this.country_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("BigHeadImgUrl", this.hasBigHeadImgUrl, this.bigHeadImgUrl_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("SmallHeadImgUrl", this.hasSmallHeadImgUrl, this.smallHeadImgUrl_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("MyBrandList", this.hasMyBrandList, this.myBrandList_, writer);
			GeneratedMessageLite<ModContact, ModContact.Builder>.PrintField("CustomizedInfo", this.hasCustomizedInfo, this.customizedInfo_, writer);
		}
		public static ModContact ParseFrom(byte[] data)
		{
			return ModContact.CreateBuilder().MergeFrom(data).BuildParsed();
		}
		private ModContact MakeReadOnly()
		{
			this.roomInfoList_.MakeReadOnly();
			return this;
		}
		public static ModContact.Builder CreateBuilder()
		{
			return new ModContact.Builder();
		}
		public override ModContact.Builder ToBuilder()
		{
			return ModContact.CreateBuilder(this);
		}
		public override ModContact.Builder CreateBuilderForType()
		{
			return new ModContact.Builder();
		}
		public static ModContact.Builder CreateBuilder(ModContact prototype)
		{
			return new ModContact.Builder(prototype);
		}
		static ModContact()
		{
			ModContact.defaultInstance = new ModContact().MakeReadOnly();
			ModContact._modContactFieldNames = new string[]
			{
				"AddContactScene",
				"AlbumBGImgID",
				"AlbumFlag",
				"AlbumStyle",
				"Alias",
				"BigHeadImgUrl",
				"BitMask",
				"BitVal",
				"ChatRoomNotify",
				"ChatRoomOwner",
				"City",
				"ContactType",
				"Country",
				"CustomizedInfo",
				"DomainList",
				"HasWeiXinHdHeadImg",
				"ImgBuf",
				"ImgFlag",
				"Level",
				"MyBrandList",
				"NickName",
				"PYInitial",
				"PersonalCard",
				"Province",
				"QuanPin",
				"Remark",
				"RemarkPYInitial",
				"RemarkQuanPin",
				"RoomInfoCount",
				"RoomInfoList",
				"Sex",
				"Signature",
				"SmallHeadImgUrl",
				"SnsUserInfo",
				"Source",
				"UserName",
				"VerifyContent",
				"VerifyFlag",
				"VerifyInfo",
				"Weibo",
				"WeiboFlag",
				"WeiboNickname"
			};
			ModContact._modContactFieldTags = new uint[]
			{
				144u,
				290u,
				280u,
				272u,
				242u,
				314u,
				56u,
				64u,
				136u,
				250u,
				162u,
				104u,
				306u,
				338u,
				130u,
				184u,
				50u,
				72u,
				208u,
				330u,
				18u,
				26u,
				176u,
				154u,
				34u,
				82u,
				90u,
				98u,
				112u,
				122u,
				40u,
				170u,
				322u,
				298u,
				216u,
				10u,
				234u,
				192u,
				202u,
				226u,
				264u,
				258u
			};
			object.ReferenceEquals(micromsg.Proto.ModContact.Descriptor, null);
		}
	}
}
